﻿using System;
/*
 
所有C#类型在运行时都会维护System.Type类的实例。有两个基本方法可以获得System.Type对象：
    在类实例上调用GetType方法
    在类名上使用typeof运算符
GetType在运行时赋值；typeof在编译时静态赋值（如果使用泛型类型，那么它将由即时编译器解析）。
 
 */
namespace _045_GetType方法和typeof运算符
{
    public class Point { public int X, Y; }
    class Test
    {
        static void Main(string[] args)
        {
            Point p = new Point();
            Console.WriteLine(p.GetType().Name); // Point
            Console.WriteLine(typeof(Point).Name); // Point
            Console.WriteLine(p.GetType() == typeof(Point)); // True
            Console.WriteLine(p.X.GetType().Name); // Int32
            Console.WriteLine(p.Y.GetType().FullName); // System.Int32

            // 同时System.Type还有作为运行时反射模式的访问器。

            Console.ReadKey();
        }
    }
}
